package proto

import (
	"regexp"
	D "websocket_apn/define"
	"websocket_apn/log"
)

/*
71 AB 00 00 01 E1 00 00 25 E6 00 00 02 D4 07 01 81 E2 08 00
12 CA 03 08 C8 DC 01 12 0C E8 BD AF E4 BB B6 E6 8E A5 E5 8F A3 18 E2 83 86 B8 C0 5A 20 A9 E6 BD 01 2A 12 E9 9C 9C E6 9C 88 E2 9C A8 E7 9A AE E7 9A AE E5 8D 8E

32 45 0A 3F 08 E2 83 86 B8 C0 5A 12 12 E9 9C 9C E6 9C 88 E2 9C A8 E7 9A AE E7 9A AE E5 8D 8E 18 94 08
22 0B 35 34 33 34 38 34 34 38 31 35 31

28 F8 E5 08 30 93 4E 38 A9 E6 BD 01 40 BC 82 07 48 04 50 00 10 01 18 08 38 D6 CB D9 E1 E0 32

42 3C 0A 26 0A 16 08 BE BA A1 BB C0 5A 10 B0 E6 BD 01 18 82 EB 06 22 00 28 D6 F4 08 12 0C E6 94 AF E8 8B B1 E5 B8 9D E5 90 9B 10 C8 EF B6 F2 E1 32
1A 0B 32 35 33 38 30 34 36 35 36 32 35

42 3F 0A 29 0A 16 08 A7 B3 E0 B8 C0 5A 10 AB E6 BD 01 18 82 EB 06 22 00 28 D6 F4 08 12 0F E9 9C 9C E6 9C 88 E2 9C A8 E5 93 88 E5 93 88 10 84 FC A2 EF E0 32
1A 0B 32 34 33 33 38 33 30 30 39 31 36

42 C4 01 0A AD 01 0A 99 01 08 B9 C2 CB BB C0 5A 10 B1 E6 BD 01 18 94 8C 09 22 84 01 68 74 74 70 73 3A 2F 2F 74 68 69 72 64 77 78 2E 71 6C 6F 67 6F 2E 63 6E 2F 6D 6D 6F 70 65 6E 2F 76 69 5F 33 32 2F 74 4A 55 65 6A 5A 37 35 4B 69 62 30 78 37 6E 6E 54 69 63 69 61 49 61 68 46 7A 4D 78 73 47 4D 54 70 70 45 41 46 70 69 61 6D 50 74 68 47 52 7A 66 4E 7A 31 70 78 36 64 66 6A 70 71 6B 45 53 41 77 72 78 65 4F 63 4F 64 6C 43 6C 6A 47 32 36 75 56 4F 67 30 72 75 39 65 33 31 51 2F 31 33 32 28 00 12 0F E7 84 A1 E9 9B 99 E2 9C A8 E4 B8 80 E6 A2 A6 10 FC 8C E0 EB E0 32
1A 0B 34 36 36 35 32 36 38 34 34 30 34

48 00 50 00


32 42 0A 3C 08 B0 92 94 BF C0 5A 12 0F E5 8D 88 E5 A4 9C E2 9C A8 E6 B5 B7 E8 8B 94          18 EE 06 22 0B 32 36 36 33 32 39 37 38 34 33 37 28 B4 E5 08 30 BA 4E 38 B8 E6 BD 01 40 B9 82 07 48 03 50 00 10 01 18 08
32 45 0A 3F 08 E2 83 86 B8 C0 5A 12 12 E9 9C 9C E6 9C 88 E2 9C A8 E7 9A AE E7 9A AE E5 8D 8E 18 94 08 22 0B 35 34 33 34 38 34 34 38 31 35 31 28 F8 E5 08 30 93 4E 38 A9 E6 BD 01 40 BC 82 07 48 04 50 00 10 01 18 08
32 40 0A 3A 08 CD F2 C6 BA C0 5A 12 0D E4 BB 99 E6 A2 A6 2E E5 99 97 E5 99 97                18 DA 06 22 0B 32 39 38 36 35 39 39 34 35 34 34 28 CC E5 08 30 95 4E 38 AF E6 BD 01 40 D1 FA 06 48 05 50 00 10 01 18 08
*/
// 解析山海万象组队信息
func ParaMountainSeaTeamInfo(dataBytes []byte) D.MountainSeaTeamInfo {
	var allInfo D.MountainSeaTeamInfo
	if len(dataBytes) < 5 {
		return allInfo
	}
	data := BytesToHexStr(dataBytes)
	//  匹配已组队信息                                                               1 用户ID                    2 用户名             3 组队时间                    4妖力
	re := regexp.MustCompile(`32(?:[0-9A-F]{2}){1,2}0A(?:[0-9A-F]{2}){1,2}08([0-9A-F]{12})12[0-9A-F]{2}((?:[0-9A-F]{2})+?)18([0-9A-F]{4})22[0-9A-F]{2}((?:3[0-9])+)28`)
	res := re.FindAllStringSubmatch(data, -1)
	if len(res) == 0 {
		log.Errorf("解析数据失败-%s", data)
	}
	for _, regRes := range res {
		info := D.PersonInfo{
			UserID:      regRes[1],
			Name:        HexDataStrToStr(regRes[2]),
			CombatValue: HexDataStrToInt64(regRes[4]),
		}
		allInfo.Team = append(allInfo.Team, info)
	}
	//                                                                                                   1 用户ID                                        2 用户名             3 组队时间                    4妖力
	re1 := regexp.MustCompile(`42(?:[0-9A-F]{2}){1,2}0A(?:[0-9A-F]{2}){1,2}0A(?:[0-9A-F]{2}){1,2}08([0-9A-F]{12})10(?:[0-9A-F]{2})+?12[0-9A-F]{2}((?:[0-9A-F]{2})+?)10([0-9A-F]{12})1A[0-9A-F]{2}((?:3[0-9])+)`)
	res1 := re1.FindAllStringSubmatch(data, -1)
	if len(res1) == 0 {
		return allInfo
	}
	for _, regRes := range res1 {
		info := D.PersonInfo{
			UserID:      regRes[1],
			Name:        HexDataStrToStr(regRes[2]),
			CombatValue: HexDataStrToInt64(regRes[4]),
		}
		allInfo.Person = append(allInfo.Person, info)
	}
	return allInfo
}
